package com.lyy.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lyy.common.constant.Token;
import com.lyy.system.pojo.SysUser;

import java.util.List;
import java.util.Map;

/**
 * 用户表(SysUser)表服务接口
 *
 * @author Yw
 * @since 2021-02-01 17:12:01
 */
public interface SysUserService extends IService<SysUser> {
    /**
     * 添加用户表
     */
    void createSysUser(SysUser sysUser);

    /**
     * 根据主键修改用户表
     */
    void updateSysUser(SysUser sysUser);

    /**
     * 根据主键删除用户表
     *
     * @param id 用户id
     * @return
     */
    void deleteSysUser(SysUser sysUser);

    /**
     * 根据主键查询用户表详情
     *
     * @param id 用户id
     * @return
     */
    SysUser getSysUser(SysUser sysUser);

    /**
     * 批量添加用户表
     *
     * @param sysUsers
     */
    int batchInsert(List<SysUser> sysUsers);

    /**
     * 批量修改用户表
     *
     * @param sysUsers
     */
    int batchUpdate(List<SysUser> sysUsers);

    /**
     * 查询用户表列表
     *
     * @param sysUser
     */
    List<SysUser> selectSysUserList(SysUser sysUser);

    /**
     * 查询用户表数量
     *
     * @param sysUser
     */
    int selectSysUserCount(SysUser sysUser);

    /**
     * 导入用户表excel
     *
     * @param sysUsers
     */
    List<Map<String, String>> importSysUserExcel(List<SysUser> sysUsers);


    /**
     * 加密密码
     *
     * @param credentials 原文
     * @param salt
     */
    String passwordEncoder(String credentials, String salt);


    /**
     * 获取Token
     *
     * @param username
     * @return
     */
    Token getToken(String username, String secret);

    /**
     * 获取Token
     *
     * @param username
     * @return
     */
    Token getLongToken(String username, String secret);

    /**
     * 通过用户名称检索用户
     *
     * @param username
     * @return
     */
    SysUser getUserByUserName(String username);
}